#include "../../server/rpc_server.hpp"
#include <thread>

void Add(const Json::Value& para, Json::Value& result)
{
    int num1 = para["num1"].asInt();
    int num2 = para["num2"].asInt();
    result = num1 + num2;
}

int main()
{
    // 创建一个方法描述
    MyRpc::server::MethodFactory method;
    method.setMethodName("Add");
    method.setParam("num1", MyRpc::server::ParaType::INTEGRAL);
    method.setParam("num2", MyRpc::server::ParaType::INTEGRAL);
    method.setResultType(MyRpc::server::ParaType::INTEGRAL);
    method.setMethodCallBack(Add);

    // LOG(DEBUGLEVEL, "方法描述构建完成");
    // 把这个方法的描述注册到服务端的方法管理端
    MyRpc::server::ServiceDescribe::ptr it = method.build();

    // 创建服务端
    MyRpc::server::RpcServer rpc_server(MyRpc::Addr("127.0.0.1", 9090), false);

    // 注册服务给注册中心
    rpc_server.registerMethod(it);
    // 启动服务端
    rpc_server.start();

    return 0;
}